/**
 * Copyrigth 2007 Aurelien Moreau
 * 
 * This file is part of ProcessShop.
 * 
 * ProcessShop is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * ProcessShop is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with ProcessShop; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * $Id$
 */
package net.yienyien.process.pmm;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see net.yienyien.process.pmm.PmmFactory
 * @model kind="package"
 * @generated
 */
public interface PmmPackage extends EPackage {
	/**
	 * The package name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNAME = "pmm";

	/**
	 * The package namespace URI.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_URI = "http://www.yienyien.net/process/pmm";

	/**
	 * The package namespace name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_PREFIX = "pmm";

	/**
	 * The singleton instance of the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	PmmPackage eINSTANCE = net.yienyien.process.pmm.impl.PmmPackageImpl.init();

	/**
	 * The meta object id for the '{@link net.yienyien.process.pmm.impl.BindingsImpl <em>Bindings</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see net.yienyien.process.pmm.impl.BindingsImpl
	 * @see net.yienyien.process.pmm.impl.PmmPackageImpl#getBindings()
	 * @generated
	 */
	int BINDINGS = 0;

	/**
	 * The feature id for the '<em><b>Bindings</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int BINDINGS__BINDINGS = 0;

	/**
	 * The number of structural features of the '<em>Bindings</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int BINDINGS_FEATURE_COUNT = 1;

	/**
	 * The meta object id for the '{@link net.yienyien.process.pmm.impl.BindingImpl <em>Binding</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see net.yienyien.process.pmm.impl.BindingImpl
	 * @see net.yienyien.process.pmm.impl.PmmPackageImpl#getBinding()
	 * @generated
	 */
	int BINDING = 1;

	/**
	 * The feature id for the '<em><b>Operation</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int BINDING__OPERATION = 0;

	/**
	 * The feature id for the '<em><b>Role</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int BINDING__ROLE = 1;

	/**
	 * The number of structural features of the '<em>Binding</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int BINDING_FEATURE_COUNT = 2;


	/**
	 * The meta object id for the '{@link net.yienyien.process.pmm.impl.PartnerBindingImpl <em>Partner Binding</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see net.yienyien.process.pmm.impl.PartnerBindingImpl
	 * @see net.yienyien.process.pmm.impl.PmmPackageImpl#getPartnerBinding()
	 * @generated
	 */
	int PARTNER_BINDING = 2;

	/**
	 * The feature id for the '<em><b>Operation</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PARTNER_BINDING__OPERATION = BINDING__OPERATION;

	/**
	 * The feature id for the '<em><b>Role</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PARTNER_BINDING__ROLE = BINDING__ROLE;

	/**
	 * The feature id for the '<em><b>Task</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PARTNER_BINDING__TASK = BINDING_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Partner Binding</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PARTNER_BINDING_FEATURE_COUNT = BINDING_FEATURE_COUNT + 1;

	/**
	 * The meta object id for the '{@link net.yienyien.process.pmm.impl.ProcessBindingImpl <em>Process Binding</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see net.yienyien.process.pmm.impl.ProcessBindingImpl
	 * @see net.yienyien.process.pmm.impl.PmmPackageImpl#getProcessBinding()
	 * @generated
	 */
	int PROCESS_BINDING = 3;

	/**
	 * The feature id for the '<em><b>Operation</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROCESS_BINDING__OPERATION = BINDING__OPERATION;

	/**
	 * The feature id for the '<em><b>Role</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROCESS_BINDING__ROLE = BINDING__ROLE;

	/**
	 * The feature id for the '<em><b>Event</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROCESS_BINDING__EVENT = BINDING_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Process Binding</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROCESS_BINDING_FEATURE_COUNT = BINDING_FEATURE_COUNT + 1;


	/**
	 * Returns the meta object for class '{@link net.yienyien.process.pmm.Bindings <em>Bindings</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Bindings</em>'.
	 * @see net.yienyien.process.pmm.Bindings
	 * @generated
	 */
	EClass getBindings();

	/**
	 * Returns the meta object for the containment reference list '{@link net.yienyien.process.pmm.Bindings#getBindings <em>Bindings</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Bindings</em>'.
	 * @see net.yienyien.process.pmm.Bindings#getBindings()
	 * @see #getBindings()
	 * @generated
	 */
	EReference getBindings_Bindings();

	/**
	 * Returns the meta object for class '{@link net.yienyien.process.pmm.Binding <em>Binding</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Binding</em>'.
	 * @see net.yienyien.process.pmm.Binding
	 * @generated
	 */
	EClass getBinding();

	/**
	 * Returns the meta object for the reference '{@link net.yienyien.process.pmm.Binding#getOperation <em>Operation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Operation</em>'.
	 * @see net.yienyien.process.pmm.Binding#getOperation()
	 * @see #getBinding()
	 * @generated
	 */
	EReference getBinding_Operation();

	/**
	 * Returns the meta object for the attribute '{@link net.yienyien.process.pmm.Binding#getRole <em>Role</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Role</em>'.
	 * @see net.yienyien.process.pmm.Binding#getRole()
	 * @see #getBinding()
	 * @generated
	 */
	EAttribute getBinding_Role();

	/**
	 * Returns the meta object for class '{@link net.yienyien.process.pmm.PartnerBinding <em>Partner Binding</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Partner Binding</em>'.
	 * @see net.yienyien.process.pmm.PartnerBinding
	 * @generated
	 */
	EClass getPartnerBinding();

	/**
	 * Returns the meta object for the reference '{@link net.yienyien.process.pmm.PartnerBinding#getTask <em>Task</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Task</em>'.
	 * @see net.yienyien.process.pmm.PartnerBinding#getTask()
	 * @see #getPartnerBinding()
	 * @generated
	 */
	EReference getPartnerBinding_Task();

	/**
	 * Returns the meta object for class '{@link net.yienyien.process.pmm.ProcessBinding <em>Process Binding</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Process Binding</em>'.
	 * @see net.yienyien.process.pmm.ProcessBinding
	 * @generated
	 */
	EClass getProcessBinding();

	/**
	 * Returns the meta object for the reference '{@link net.yienyien.process.pmm.ProcessBinding#getEvent <em>Event</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Event</em>'.
	 * @see net.yienyien.process.pmm.ProcessBinding#getEvent()
	 * @see #getProcessBinding()
	 * @generated
	 */
	EReference getProcessBinding_Event();

	/**
	 * Returns the factory that creates the instances of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the factory that creates the instances of the model.
	 * @generated
	 */
	PmmFactory getPmmFactory();

	/**
	 * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
	 * @generated
	 */
	interface Literals {
		/**
		 * The meta object literal for the '{@link net.yienyien.process.pmm.impl.BindingsImpl <em>Bindings</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see net.yienyien.process.pmm.impl.BindingsImpl
		 * @see net.yienyien.process.pmm.impl.PmmPackageImpl#getBindings()
		 * @generated
		 */
		EClass BINDINGS = eINSTANCE.getBindings();

		/**
		 * The meta object literal for the '<em><b>Bindings</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference BINDINGS__BINDINGS = eINSTANCE.getBindings_Bindings();

		/**
		 * The meta object literal for the '{@link net.yienyien.process.pmm.impl.BindingImpl <em>Binding</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see net.yienyien.process.pmm.impl.BindingImpl
		 * @see net.yienyien.process.pmm.impl.PmmPackageImpl#getBinding()
		 * @generated
		 */
		EClass BINDING = eINSTANCE.getBinding();

		/**
		 * The meta object literal for the '<em><b>Operation</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference BINDING__OPERATION = eINSTANCE.getBinding_Operation();

		/**
		 * The meta object literal for the '<em><b>Role</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute BINDING__ROLE = eINSTANCE.getBinding_Role();

		/**
		 * The meta object literal for the '{@link net.yienyien.process.pmm.impl.PartnerBindingImpl <em>Partner Binding</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see net.yienyien.process.pmm.impl.PartnerBindingImpl
		 * @see net.yienyien.process.pmm.impl.PmmPackageImpl#getPartnerBinding()
		 * @generated
		 */
		EClass PARTNER_BINDING = eINSTANCE.getPartnerBinding();

		/**
		 * The meta object literal for the '<em><b>Task</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PARTNER_BINDING__TASK = eINSTANCE.getPartnerBinding_Task();

		/**
		 * The meta object literal for the '{@link net.yienyien.process.pmm.impl.ProcessBindingImpl <em>Process Binding</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see net.yienyien.process.pmm.impl.ProcessBindingImpl
		 * @see net.yienyien.process.pmm.impl.PmmPackageImpl#getProcessBinding()
		 * @generated
		 */
		EClass PROCESS_BINDING = eINSTANCE.getProcessBinding();

		/**
		 * The meta object literal for the '<em><b>Event</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PROCESS_BINDING__EVENT = eINSTANCE.getProcessBinding_Event();

	}

} //PmmPackage
